home *** CD-ROM | disk | FTP | other *** search
- #ifndef FWSTRMF_H
- #define FWSTRMF_H
- //========================================================================================
- //
- // File: FWStrmF.h
- // Release Version: $ 1.0d1 $
- //
- // Creation Date: 3/28/94
- //
- // Copyright: © 1994 by Apple Computer, Inc., all rights reserved.
- //
- //========================================================================================
-
- #ifndef FWASINKS_H
- #include "FWASinks.h"
- #endif
-
- #ifndef FWPRIEXC_H
- #include "FWPriExc.h"
- #endif
-
- //========================================================================================
- // CLASS FW_CReadableStreamFormatter
- //========================================================================================
-
- class FW_CReadableStreamFormatter : public _FW_CAutoDestructObject
- {
-
- public:
-
- FW_CReadableStreamFormatter();
- virtual~ FW_CReadableStreamFormatter();
-
- virtual void ReadBytes(FW_CSink& sink,
- void* destination,
- long count);
-
- virtual void ReadChars(FW_CSink& sink,
- char* destination,
- long count);
-
- virtual void ReadSignedChars(FW_CSink& sink,
- signed char* destination,
- long count);
-
- virtual void ReadUnsignedChars(FW_CSink& sink,
- unsigned char* destination,
- long count);
-
- virtual void ReadNullTerminatedString(FW_CSink& sink,
- char* destination);
-
- virtual void ReadInts(FW_CSink& sink,
- int* destination,
- long count);
-
- virtual void ReadUnsignedInts(FW_CSink& sink,
- unsigned int* destination,
- long count);
-
- virtual void ReadShorts(FW_CSink& sink,
- short* destination,
- long count);
-
- virtual void ReadUnsignedShorts(FW_CSink& sink,
- unsigned short* destination,
- long count);
-
- virtual void ReadLongs(FW_CSink& sink,
- long* destination,
- long count);
-
- virtual void ReadUnsignedLongs(FW_CSink& sink,
- unsigned long* destination,
- long count);
-
- virtual void ReadFloats(FW_CSink& sink,
- float* destination,
- long count);
-
- virtual void ReadDoubles(FW_CSink& sink,
- double* destination,
- long count);
-
- #ifdef FW_COMPILER_SUPPORTS_LONG_DOUBLE
- virtual void ReadLongDoubles(FW_CSink& sink,
- long double* destination,
- long count);
- #endif
-
- protected:
-
- void Identity(FW_CSink& sink,
- void* destination,
- long count,
- long itemSize);
-
- private:
- FW_CReadableStreamFormatter(const FW_CReadableStreamFormatter& formatter);
- FW_CReadableStreamFormatter& operator=(const FW_CReadableStreamFormatter& formatter);
- // Shouldn't copy instances of this class.
- };
-
-
- //======================================================================================
- // class FW_CSwapBytesFormatter
- //======================================================================================
-
- class FW_CSwapBytesFormatter : public FW_CReadableStreamFormatter
- {
- public:
-
- FW_CSwapBytesFormatter();
- virtual~ FW_CSwapBytesFormatter();
-
- virtual void ReadInts(FW_CSink& sink,
- int* destination,
- long count);
-
- virtual void ReadUnsignedInts(FW_CSink& sink,
- unsigned int* destination,
- long count);
-
- virtual void ReadShorts(FW_CSink& sink,
- short* destination,
- long count);
-
- virtual void ReadUnsignedShorts(FW_CSink& sink,
- unsigned short* destination,
- long count);
-
- virtual void ReadLongs(FW_CSink& sink,
- long* destination,
- long count);
-
- virtual void ReadUnsignedLongs(FW_CSink& sink,
- unsigned long* destination,
- long count);
- };
-
-
- //========================================================================================
- // CLASS FW_CWritableStreamFormatter
- //========================================================================================
-
- class FW_CWritableStreamFormatter : public _FW_CAutoDestructObject
- {
-
- public:
-
- FW_CWritableStreamFormatter();
- virtual~ FW_CWritableStreamFormatter();
-
- virtual void WriteBytes(FW_CSink& sink,
- const void* source,
- long count);
-
- virtual void WriteChars(FW_CSink& sink,
- const char* source,
- long count);
-
- virtual void WriteSignedChars(FW_CSink& sink,
- const signed char* source,
- long count);
-
- virtual void WriteUnsignedChars(FW_CSink& sink,
- const unsigned char* source,
- long count);
-
- virtual void WriteNullTerminatedString(FW_CSink& sink,
- const char* source);
-
- virtual void WriteInts(FW_CSink& sink,
- const int* source,
- long count);
-
- virtual void WriteUnsignedInts(FW_CSink& sink,
- const unsigned int* source,
- long count);
-
- virtual void WriteShorts(FW_CSink& sink,
- const short* source,
- long count);
-
- virtual void WriteUnsignedShorts(FW_CSink& sink,
- const unsigned short* source,
- long count);
-
- virtual void WriteLongs(FW_CSink& sink,
- const long* source,
- long count);
-
- virtual void WriteUnsignedLongs(FW_CSink& sink,
- const unsigned long* source,
- long count);
-
- virtual void WriteFloats(FW_CSink& sink,
- const float* source,
- long count);
-
- virtual void WriteDoubles(FW_CSink& sink,
- const double* source,
- long count);
-
- #ifdef FW_COMPILER_SUPPORTS_LONG_DOUBLE
- virtual void WriteLongDoubles(FW_CSink& sink,
- const long double* source,
- long count);
- #endif
-
- protected:
-
- void Identity(FW_CSink& sink,
- const void* source,
- long count,
- long itemSize);
-
- private:
- FW_CWritableStreamFormatter(const FW_CWritableStreamFormatter& formatter);
- FW_CWritableStreamFormatter& operator=(const FW_CWritableStreamFormatter& formatter);
- // Shouldn't copy instances of this class.
- };
-
-
- //========================================================================================
- // CLASS FW_XReadableStreamFormatter
- //========================================================================================
-
- class FW_XReadableStreamFormatter : public FW_XPrivException
- {
-
- public:
-
- FW_XReadableStreamFormatter(long itemsRequested,
- long itemSize,
- long itemsRead);
- FW_XReadableStreamFormatter(const FW_XReadableStreamFormatter& formatter);
- virtual ~FW_XReadableStreamFormatter();
- _FW_EXCEPTION_DEFINE(FW_XReadableStreamFormatter)
-
- const long GetItemsRequested() const;
- const long GetItemSize() const;
- const long GetItemsRead() const;
-
- private:
-
- const long fItemsRequested;
- const long fItemSize;
- const long fItemsRead;
- };
-
-
- //========================================================================================
- // CLASS FW_XWritableStreamFormatter
- //========================================================================================
-
- class FW_XWritableStreamFormatter : public FW_XPrivException
- {
-
- public:
-
- FW_XWritableStreamFormatter(long itemsRequested,
- long itemSize,
- long itemsWritten);
- FW_XWritableStreamFormatter(const FW_XWritableStreamFormatter& formatter);
- virtual ~FW_XWritableStreamFormatter();
- _FW_EXCEPTION_DEFINE(FW_XWritableStreamFormatter)
-
- const long GetItemsRequested() const;
- const long GetItemSize() const;
- const long GetItemsWritten() const;
-
- private:
-
- const long fItemsRequested;
- const long fItemSize;
- const long fItemsWritten;
- };
-
-
- //========================================================================================
- // CLASS FW_XReadableStreamFormatter - inline methods
- //========================================================================================
-
- //----------------------------------------------------------------------------------------
- // FW_XReadableStreamFormatter::GetItemsRequested
- //----------------------------------------------------------------------------------------
-
- inline const long FW_XReadableStreamFormatter::GetItemsRequested() const
- {
- return fItemsRequested;
- }
-
- //----------------------------------------------------------------------------------------
- // FW_XReadableStreamFormatter::GetItemSize
- //----------------------------------------------------------------------------------------
-
- inline const long FW_XReadableStreamFormatter::GetItemSize() const
- {
- return fItemSize;
- }
-
- //----------------------------------------------------------------------------------------
- // FW_XReadableStreamFormatter::GetItemsRead
- //----------------------------------------------------------------------------------------
-
- inline const long FW_XReadableStreamFormatter::GetItemsRead() const
- {
- return fItemsRead;
- }
-
-
- //========================================================================================
- // CLASS FW_XWritableStreamFormatter - inline methods
- //========================================================================================
-
- //----------------------------------------------------------------------------------------
- // FW_XWritableStreamFormatter::GetItemsRequested
- //----------------------------------------------------------------------------------------
-
- inline const long FW_XWritableStreamFormatter::GetItemsRequested() const
- {
- return fItemsRequested;
- }
-
- //----------------------------------------------------------------------------------------
- // FW_XWritableStreamFormatter::GetItemSize
- //----------------------------------------------------------------------------------------
-
- inline const long FW_XWritableStreamFormatter::GetItemSize() const
- {
- return fItemSize;
- }
-
- //----------------------------------------------------------------------------------------
- // FW_XWritableStreamFormatter::GetItemsWritten
- //----------------------------------------------------------------------------------------
-
- inline const long FW_XWritableStreamFormatter::GetItemsWritten() const
- {
- return fItemsWritten;
- }
-
- #endif
-